home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / Aplikacje_64-bitowe / Mixxx / mixxx-1.9.0-win64.exe / midi / Mixman DM2 (Linux).js < prev    next >
Text File  |  2010-12-02  |  1KB  |  46 lines

  1. // This is the companion script file for the 
  2. // Mixman DM2 mapping (Linux driver, dm2linux.sourceforge.net)
  3.  
  4. function DM2() {}
  5.  
  6. // No specific init. MIDI reset would be nice here, to recalibrate...
  7. DM2.init = function () {}
  8. DM2.shutdown = function () {}
  9.  
  10. // Scratch wheel needs severe rescaling.
  11. DM2.scratch1 = function (channel, control, value, status ) {
  12.     engine.setValue("[Channel1]", "scratch", (value - 0x40)*0.05);
  13. }
  14. DM2.scratch2 = function (channel, control, value, status ) {
  15.     engine.setValue("[Channel2]", "scratch", (value - 0x40)*0.05);
  16. }
  17.  
  18. // For the flanger, we use one key to shift one axis into lfoPeriod mode.
  19. DM2.flanger_shifted = 0;
  20. DM2.shift = function (channel, control, value, status) {
  21.     DM2.flanger_shifted = (value < 0x40) ? 0 : 1;
  22. }
  23. DM2.delay_period = function (channel, control, value, status) {
  24.     if (DM2.flanger_shifted) {
  25.     // period mode
  26.     value = 50000.0 + (2000000.0 - 50000.0) * value / 127.0;
  27.     engine.setValue("[Flanger]", "lfoPeriod", value);
  28.     } else {
  29.     // delay mode
  30.     value = 50.0 + (10000.0 - 50.0) * value / 127.0;
  31.     engine.setValue("[Flanger]", "lfoDelay", value);
  32.     }
  33. }
  34.  
  35. // Beatsync only on the platter currently not playing.
  36. DM2.beatsync = function (channel, control, value, status) {
  37.     if (!engine.getValue("[Channel1]", "play")) {
  38.         engine.setValue("[Channel1]", "beatsync", value);
  39.     return;
  40.     }
  41.     if (!engine.getValue("[Channel2]", "play")) {
  42.         engine.setValue("[Channel2]", "beatsync", value);
  43.     return;
  44.     }
  45. }
  46.